Unlike the traditional network architecture, which integrates both the data plane and the control plane in the same box (e.g., a network element such as a router), a software defined networking (SDN) network decouples these two planes and executes the control plane on servers (controllers) that might be in different physical locations from the forwarding elements (switches). The use of an SDN network enables the simplification of the switches and shifts the intelligence of the network into a number of controllers that oversee the switches.
The tight coupling of the forwarding and control planes in a traditional architecture usually results in an overly complicated control plane and complex network management. This is known to create a large burden and high barrier to new protocols and technology developments related to networking and improving network elements. Despite the rapid improvement of line speeds, port densities, and performance, the network control plane mechanisms have advanced at a much slower pace than the forwarding plane mechanisms.
In an SDN network, controllers collect information from switches, and compute and distribute the appropriate forwarding decisions to switches. Controllers and switches use a protocol to communicate and exchange information. An example of such protocol is OpenFlow (see the OpenFlow 1.1 Specification), which provides an open standard method for a switch to communicate with a controller, and this protocol has drawn significant interest from both academics and industry.